#include <iostream>
#include <vector>
using namespace std;

void printVec(vector<int>* vec, int n) {
    for(auto t = vec[n].begin(); t != vec[n].end(); t++) {
        cout << *(t.base()) << " ";
    }
}
int main(void)
{
    long input;
    vector<int> vec[40970];
    bool flag =  false;
    for (int t = 2; t < 40970; t++)
    {
        input = t;
        while (input != 1)
        {
            for (int i = 2; i <= input; i++)
            {
                if (input % i == 0)
                {
                    input /= i;
                    vec[t].push_back(i);
                    break;
                }
            }
        }
    }
    while (cin >> input)
    {
        flag = false;
        while (input != 1)
        {
            for (int i = 2; i <= input; i++)
            {
                if (input % i == 0)
                {
                    input /= i;
                    cout << i << ' ';
                    if (input < 40970) {
                        printVec(vec, input);
                        flag = true;
                        break;
                    }
                    break;
                }
            }
            if (flag)break;
        }
        cout << endl;
    }

    return 0;
}
